package com.baselibrary.libs.Utils.db.DAO;

import android.content.Context;
import android.support.v4.util.LruCache;

import com.alibaba.fastjson.JSONObject;
import com.baselibrary.libs.Utils.log.LogUtils;
import com.baselibrary.libs.Utils.netUtils.NoHttp.queue.Request_netWork;
import com.baselibrary.libs.Utils.netUtils.NoHttp.queue.Request_netWork_error;
import com.baselibrary.libs.Utils.netUtils.NoHttp.queue.YolandaLinkedQueue;

/**
 * Created by Administrator 于萌萌
 * 创建日期: 14:35 . 2017年03月02日
 * 描述:
 * <p>
 * <p>
 * 备注:
 */

public class CacheMemory<T> {
    LruCache<String,String> lruCache ;
    Context context;
    public CacheMemory(Context context, LruCache<String,String> lruCache) {
        this.context =context;
        this.lruCache = lruCache;
    }

    //获取缓存
    public boolean getCacheMemory(final Request_netWork request, final YolandaLinkedQueue<Request_netWork, Request_netWork_error, Integer, JSONObject> queue) {
        //如果不查询就直接 返回 空
        if (null==context || null==request.getClazz()){
            queue.onStart(request,null);
            return true;
        }

        String lruCacheJson = lruCache.get(request.getTag());
        LogUtils.i("缓存步骤"+"先获取内存中的数据"+lruCacheJson);
        //如果 这个 内存没有找到 我就去数据库找
        if (null == lruCacheJson){
            return true;
        }
        //返回缓存数据
        JSONObject jsonObject = JSONObject.parseObject(lruCacheJson);
        LogUtils.i("缓存步骤"+"在内存中获取到了数据执行回显"+lruCacheJson);
        //request.setResult(jsonObject);
        queue.onStart(request,jsonObject);


        return false;
    }

    //添加缓存
    public boolean addCacheMemory(final Request_netWork request, JSONObject jsonObject) {
        if (null==context || null==request.getClazz()){
            return true;
        }
        String jsonObjectString = jsonObject.toString();
        LogUtils.i("缓存步骤"+"内给内存添加数据"+jsonObjectString);
        lruCache.put(request.getTag(),jsonObjectString);
        LogUtils.i("缓存步骤"+"现在缓存内存的数据是"+lruCache);

        return false;
    }

}
